Data and information are rapidly becoming the life blood of enterprises. Transactions with customers, operational data, financial data, corporate intelligence data; in fact, all types of information are now captured, indexed, stored, and mined by enterprises in today's highly competitive and world economy.
Since information is vital to the enterprise, it is often made available twenty-four hours a day, seven days a week, and three hundred sixty-five days a year. To achieve this, the enterprises have to implement a variety of data replication, data backup, and data versioning techniques against their data models or their data warehouses.
For example, an enterprise may periodically capture the state of its data for a particular volume as a snapshot. If something should happen to the volume, it can be completely restored to a saved snapshot state. Another technique mirrors a volume on multiple volumes, such that if one volume is down or not accessible, another volume is automatically made available unbeknownst to the users. This is often referred to as data replication or failover support.
In still more cases, an enterprise may desire to permit different versions of files in the data warehouse to be captured, archived, and restored on demand by a user. This may be useful for a variety of reasons. For example, a user may download a file and work with it offline and could then lose the file due to a hardware failure. In another case, a user may make changes to a file and then determine that a previous version was more acceptable or more desirable. In either case, if the files are versioned, the user can retrieve a desired version of a file from an archive or versioning volume.
With respect to file versioning a variety of issues exist with today's approaches. More particularly, today's file versioning techniques generally: do not permit users to locally mount remote versions of their files; do not permit users to utilize existing file system operations against versioned files; do not permit users to use existing browsers to view versioned files; impose size limitations on the length of string names associated with versioned files; do not permit directories and directory path's to be versioned properly; do not permit hard links to be addressed with the versioned files; do not retain security restrictions from version to version, which are enforced based on a versioned file's access restrictions that existed at the time that versioned file was versioned, etc.
Thus, it is desirable for improved versioning file systems that permit users to view, access, and easily comprehend versioned files/directories as if these files/directories were natively their own files/directories local to their computer environment.